草庐IT

Java String.split 内存泄漏?

全部标签

c++ - 具有动态内存的命名管道策略?

好的,所以我有一个需要一些IPC的应用程序...我认为命名管道是可行的方法,因为它们非常易于使用。无论如何,我有一个关于如何使用命名管道处理动态内存的问题。假设我有这样一个类:classMyTestClass{public:MyTestClass(){_data=newint(4);}intGetData(){return*_data;}intGetData2(){return_data2;}private:int*_data;int_data2;};现在,当我创建一个充满MyTestClass对象的缓冲区然后通过管道发送它们时,我显然在目标进程中丢失了_data并得到了垃圾。我应该使

c# - Windows 内存和页面文件使用情况

有人可以向我解释为什么最小化Windows应用程序会大量减少内存使用吗?例如,我运行VisualStudio,在任务管理器中显示800MB的内存使用情况,然后我最小化VisualStudio应用程序窗口,现在任务管理器中的内存使用情况只显示50MB。这似乎发生在所有winforms应用程序中。 最佳答案 来自here:任务管理器显示为应用程序的内存使用情况实际上是它的工作集。当应用程序最小化时,Windows会修剪应用程序的工作集,所以这就是这个数字下降的原因。工作集并不能准确表示应用程序使用了多少内存。在WindowsVista中

windows - 为什么在 Windows Vista x64 上调用 GlobalMemoryStatus 时可用物理内存 (dwAvailPhys) > 可用虚拟内存 (dwAvailVirtual)

我正在使用MSDN样本进行内存压力测试(请参阅:http://msdn.microsoft.com/en-us/magazine/cc163613.aspx)和专门占用物理内存的该工具的扩展(请参阅http://www.donationcoder.com/Forums/bb/index.php?topic=14895.0;prev_next=next)。我显然对虚拟内存和物理内存之间的区别感到困惑。我以为每个进程都有2GB的虚拟内存(虽然我也读了1.5GB因为“开销”)。我的理解是这个虚拟内存的一些/全部/没有可能是物理内存,而一个进程使用的物理内存量进程可能会随着时间的推移而改变(内

C++ 库/类从内存位图数组中创建简单的视频文件

我写了一个学术模拟软件。模拟结果存储在一个1字节值的二维内存数组中(映射到256色)。我需要编写一个类,它以确定的时间间隔读取数组并从中创建一个视频文件。格式并不重要(只要流行即可)。是否有一个C++包装器类(通过WindowsAPI)或库可以轻松地为我做这件事? 最佳答案 一个简单的解决方案是使用“VideoforWindowsAPI”。这组函数内置于Windows中,允许您从一系列位图中创建具有各种视频编解码器的AVI文件。您也可以选择用它录制音频。以下是演示如何使用它的示例项目的链接:http://www.codeprojec

python - 如何使用 C 库刷新 Python 程序中的内存?

Python程序的功能是使用网络摄像头找到最亮的光线,并将X、Y坐标发送到arduino程序。这是用相机跟随太阳。问题是内存增加直到程序卡住。我试图在使用后删除所有变量。但它仍然使用太多内存。操作系统:Windows7我怎样才能找到泄漏并阻止它?这是python代码:importcvimporttracebackimportserialtry:cv.NamedWindow("CameraFeed",1)capture=cv.CaptureFromCAM(0)cv.NamedWindow("Altered",1)except:cv.DestroyWindow("CameraFeed")c

java - 客户端是否需要担心多个内存缓存服务器?

问题:-Java客户端是否需要担心多个服务器?含义:-我在memcached客户端中提供了两个服务器,但是当我设置或从缓存中获取key时,我是否需要向它提供任何服务器相关信息或memcache本身会处理它?我的知识:-由于一致的散列,内存缓存本身会小心。但是spymemcached2.8.0是否提供一致的哈希??? 最佳答案 Memcached服务器是池化服务器。这意味着您定义了一个服务器池(列表),当Java客户端尝试写入时,它会写入该池。客户端的工作是决定池中的哪个服务器将接收和存储值以及它将如何从该池中检索值。基本上,这允许您

.net - 如果某些进程需要分配超过 2 GB 的内存,会发生什么情况?

据我所知-Windows中的任何进程都会获得2GB的虚拟内存地址空间(在某些情况下为3GB)用于分配用途。在什么情况下进程将获得3GB而不是2GB?应用程序开发人员是否可以通过某种方式“要求”操作系统分配超过2/3GB的虚拟地址空间?如果进程需要超过3/2GB会怎样?(我猜系统会遇到一些“内存不足异常”——但有什么方法可以避免这种情况吗?)例如-如果进程是“MicrosoftSQLServer”,需要分配比2/3GB多得多的内存,会发生什么 最佳答案 一个32位进程有4GB地址空间,其中通常为硬件保留1GB,为Windows保留1G

c++ - 确定 IWICStream 缓冲区中已用内存的大小

我有VirtualAlloc()的10MB内存块并初始化了IWICStream与它一起使用IWICStream::InitializeFromMemory().我将PNG编码到IWICStream中,但我不知道PNG数据占用了多少内存。如何确定IWICStream缓冲区的有效/已用大小? 最佳答案 IWICStream继承IStream。标准技巧是使用IStream::Seek(),在写入图像后指定STREAM_SEEK_CUR。*plibNewPosition参数为您提供长度。 关于c

c++ - 是否有任何工具支持基于检查点的 C++ 内存使用分析

我正在开发基于网络的应用程序。我想查看应用程序不同阶段之间的内存使用情况,例如初始化和释放之间的内存使用情况或发送和接收之间的内存使用情况。我用谷歌搜索并尝试找到解决方案,但没有找到完全符合我要求的帖子。各位,请推荐任何可以帮助我在Linux和Windows平台上执行基于检查点内存分析的工具或流程。提前致谢下面的代码_CrtMemStatememState1;_CrtMemCheckpoint(&memState1);char*p=newchar[100];p=newchar[100];p=newchar[100];p=newchar[100];p=newchar[100];_CrtM

linux - 虚拟内存澄清 - 大连续内存的分配

我有一个应用程序,我必须在Windows上(使用operatornew)分配相当大的内存空间(数百MB)。该应用程序是32位的(我们现在不使用64位,即使在64位系统上也是如此)并且我启用了/LARGEADDRESSAWARE链接器选项以便能够使用4GB的用户空间内存。问题如果我需要分配,比如450MB的连续内存,进程的虚拟地址空间是否需要有足够大的连续空间和另外物理内存不必在系统上碎片化?我问这个是因为我可以这样做,以便我的应用程序保留足够大的连续空间,但不知道系统上的其他应用程序是否会以这种方式影响我。操作系统页表是否需要将应用程序看到的连续虚拟地址转换为连续物理地址?